<?php

/**
 * AccountModel
 *
 * @author nagata
 * @version
 */
require_once 'Zend/Db/Table/Abstract.php';

class AccountModel extends Zend_Db_Table_Abstract {
    protected $_name = 'mst_account';
    protected $_primary = 'account_id';

    protected $_session;
    
    /**
     * コンストラクタでセッションの初期化を行う。
     * 
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
        $this->_session = new Zend_Session_Namespace('okute');
    }

    /**
     * mst_accountテーブルのaccount_idを取得する。
     *
     * @return string $accountId
     */
    public function getAccountId()
    {
        $accountId = null;
        switch ($this->_session->role) {
            case AclModel::ROLE_REQUESTER:
                $accountId = $this->_session->requester->requester_id;
                break;
                
            case AclModel::ROLE_SUPPORTER:
            case AclModel::ROLE_CARRIER:
                $accountId = $this->_session->party->party_id;
                break;
                
            default:
                $accountId = 'operator';
                break;
        }
        return $accountId;
    }
    
    /**
     * ユーザ名を取得する。
     * ユーザが申請希望者の場合、mst_requesterのnameを返す。
     * ユーザが団体の場合、mst_partyのparty_nameを返す。
     * ユーザが運用者の場合、文字列'operator'を返す。
     *
     * @return string $userName
     */
    public function getUserName()
    {
        $userName = null;
        switch ($this->_session->role) {
            case AclModel::ROLE_REQUESTER:
                $userName = $this->_session->requester->name;
                break;
                
            case AclModel::ROLE_SUPPORTER:
            case AclModel::ROLE_CARRIER:
                $userName = $this->_session->party->party_name;
                break;
                
            default:
                $userName = '管理者';
                break;
        }
        return $userName;
    }
    
}
